Release 10.1A: OpenEdge Development:
Progress Dynamics Advanced Development


Object type table

The Object Type table gsc_object_type really defines an object class. Object types are, in principle, hierarchical, so that an object type can inherit from other object types to define subclasses of other objects. Although this capability is not yet fully implemented in Progress Dynamics Version 2, the data structure is there to support it, and future releases will allow both the Progress Dynamics development team and application developers to define object types by subclassing other object types.

In the ADM2 code itself, of course, this is already done for SmartObjects, so that a SmartObject type, such as a SmartDataViewer, is defined in terms of a class hierarchy starting with smart.p and continuing down through visual.p, datavis.p, and viewer.p, and optionally container.p, if the viewer contains SmartDataFields. However, this hierarchy is not yet represented in the Repository itself and is defined by the nested include files that are part of the SmartObject’s code-based definition. What will happen in the future is that the definition of this hierarchy will be fully represented in the Repository itself, so that there is no need for the code that is currently compiled into the SmartObjects, including the procedures that act as drivers for objects defined in the Repository. When this happens, it will also be possible to define objects other than SmartObjects in the same hierarchical fashion, such as a class of widget, then a fill-in that extends the class of widget with specific attributes for fill-ins, then a class of date fill-ins, etc.

Object types are also used to define default values for many object attributes or properties, which are inherited by every object of that type that is created.

The gsc_object_type table has the fields described in Table 8–1.

Table 8–1: The gsc_object_type table
FIeld
Description
object_type_code 
This CHARACTER field is a unique character string to name this type of object.
object_type_descriptio
n 	 
This CHARACTER field can hold any useful description of the object type.
disabled 
This LOGICAL field determines whether security checking is enabled for the object type. If the field is set to YES, then this object type is not checked by the security mechanism and full access is granted.
layout_supported 

If this LOGICAL field is set to YES, then this is a noncontainer SmartObject that might require a layout if built dynamically.

static_object 		 
Every ryc_smartobject record has a static_object field that identifies whether the object is either static, that is, having its own procedure file or dynamic, that is, generated strictly from data in the Repository. This LOGICAL field defines a default value for that static_object field for all objects of the type.
deployment_type
This CHARACTER field determines where objects of this type should be deployed. As with the static_object field, the field acts as a default for the deployment_type field stored in every ryc_smartobject record for the type. Valid values for this field are SRV for remote server only, CLI for client only, WEB for Web browser objects, or combinations as required, represented as a comma-delimited list, for example, CLI,SRV. This field assists developers in deploying applications on AppServers by helping define which objects should reside where.
class_smartobject_obj

An object type can be supported by a procedure that defines behavior for the type. This is the case for SmartObject classes, and might be true for other object types as well. If there is a class procedure for an object type, it is registered in the Repository in the ryc_smartobject table, like any other procedure. This object ID field points to that class procedure if it exists.

extends_object_type_obj
This object ID field defines the hierarchical relationship between object types. If it is defined, it points to the “parent” object type that the current object type extends or inherits from.
product_module_obj
Every object type is registered in a product module, and this object ID points to that record.


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095